package com.cyy.common.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cyy.common.pojo.query.system.SystemArticleVo;
import com.cyy.common.pojo.dto.ArticleSearchDto;
import com.cyy.common.pojo.entity.Article;
import com.cyy.common.pojo.query.system.SystemArticleQuery;
import com.cyy.common.pojo.req.ArticlePushReq;
import com.cyy.common.pojo.req.ArticleSaveOrUpdateReq;
import com.cyy.common.pojo.req.PageArticleReq;
import com.cyy.common.pojo.req.RandomImgReq;
import com.cyy.common.pojo.resp.ArticleDetailsResp;
import com.cyy.common.pojo.vo.api.ApiArchiveVo;
import com.cyy.common.pojo.vo.api.ApiArticleVo;

import java.util.List;

/**
 * <p>
 * 博客文章表 服务类
 * </p>
 *
 * @author 曹云友
 * @since 2024-04-01
 */
public interface ArticleService extends IService<Article> {

    IPage<ApiArticleVo> queryPage(PageArticleReq req);

    ArticleDetailsResp queryDetailsById(Long id);

    IPage<ApiArchiveVo> pageArchive();

    List<ArticleSearchDto> searchArticleByKeyWords(String keywords);

    Integer like(Integer id);

    IPage<SystemArticleVo> getPage(SystemArticleQuery query);

    Integer saveOrUpdateArticle(ArticleSaveOrUpdateReq req);

    com.cyy.common.pojo.vo.system.SystemArticleVo queryEditVoById(Integer id);

    String randomImg(RandomImgReq req);

    void push(ArticlePushReq req);

    Boolean readVerifyQuery(Integer id);
}
